;(function () {
  //我们从比较有代表性的 includes 看起，对应实现一个类型层面的版本：判断传入的字符串字面量类型中是否含有某个字符串：
  type Include<Str extends string, Search extends string> = Str extends `${infer _R1}${Search}${infer _R2}` ? true : false

  type IncludeRes1 = Include<'linbudu', 'lin'> // true
  type IncludeRes2 = Include<'linbudu', '_lin'> // false
  type IncludeRes3 = Include<'linbudu', ''> // true
  type IncludeRes4 = Include<' ', ''> // true
  type IncludeRes5 = Include<'', ''> // false
})()
